package zakupy;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.faces.context.FacesContext;
import javax.faces.context.FacesContextFactory;
import javax.faces.model.SelectItem;

import zakupy.entity.ZakupyKategoria;
import zakupy.entity.ZakupySklep;
import zakupy.entity.ZakupyTowar;

public class classbase {

	private String
	strModal,
	modaltytul,
	komunikat,			/* tylko do wyswietlania userowi co sie dzieje w programie*/
	strSklepModal,		/*nowy sklep*/
	strKategoriaModal,	/*nowa kategoria*/
	/*strNazwaProduktu,	nazwa produktu
	strCena,			wprowadzona cena*/
	strKategoria,		/*wybrana kategoria*/
	strSklep;			/*wybrany sklep*/
	
	private boolean
	paneldodawanie,
	operacjadodawanie,
	paneldodanotowar,
	paneldodawaniekategorii,
	paneldodawaniesklepu,
	widokpanel;
	
	private SelectItem[] 
			listakategorii,
			listasklepow;
	
		private MPnazwa mpnazwa=new MPnazwa();
	public MPnazwa getMpnazwa() {
		return mpnazwa;
	}
	public void setMpnazwa(MPnazwa mpnazwa) {
		this.mpnazwa = mpnazwa;
	}
		private MP mp=new MP();
	public MP getMp() {
		return mp;
	}
	public void setMp(MP mp) {
		this.mp = mp;
	}
		/**	ZakupySklep	 */
		private ZakupySklep tempzs=new ZakupySklep();
	public ZakupySklep getTempzs() {
		return tempzs;
	}
	public void setTempzs(ZakupySklep tempzs) {
		this.tempzs = tempzs;
	}
		/** ZakupyKategoria	 */
		private ZakupyKategoria tempzk=new ZakupyKategoria();
	public ZakupyKategoria getTempzk() {
		return tempzk;
	}
	public void setTempzk(ZakupyKategoria tempzk) {
		this.tempzk = tempzk;
	}
		/** ZakupyTowar */
		private ZakupyTowar temptowar=new ZakupyTowar();
	public ZakupyTowar getTemptowar() {
		return temptowar;
	}
	public void setTemptowar(ZakupyTowar temptowar) {
		this.temptowar = temptowar;
	}
	FacesContext fc;
	//private Date dateTest,dataod;
	private Date dataod;

	
	public String getStrModal() {
		return strModal;
	}

	public void setStrModal(String strModal) {
		this.strModal = strModal;
	}

	public boolean isPaneldodawanie() {
		return paneldodawanie;
	}

	public void setPaneldodawanie(boolean paneldodawanie) {
		this.paneldodawanie = paneldodawanie;
	}

	public String getModaltytul() {
		return modaltytul;
	}

	public void setModaltytul(String modaltytul) {
		this.modaltytul = modaltytul;
	}

	public boolean isOperacjadodawanie() {
		return operacjadodawanie;
	}

	public void setOperacjadodawanie(boolean operacjadodawanie) {
		this.operacjadodawanie = operacjadodawanie;
	}

	public String getKomunikat() {
		return komunikat;
	}

	public void setKomunikat(String komunikat) {
		this.komunikat = komunikat;
	}

	public String getStrSklepModal() {
		return strSklepModal;
	}

	public void setStrSklepModal(String strSklepModal) {
		this.strSklepModal = strSklepModal;
	}

	public Date getDataod() {
		return dataod;
	}

	public void setDataod(Date dataod) {
		this.dataod = dataod;
	}

	public boolean isPaneldodanotowar() {
		return paneldodanotowar;
	}

	public void setPaneldodanotowar(boolean paneldodanotowar) {
		this.paneldodanotowar = paneldodanotowar;
	}

	public boolean isPaneldodawaniekategorii() {
		return paneldodawaniekategorii;
	}

	public void setPaneldodawaniekategorii(boolean paneldodawaniekategorii) {
		this.paneldodawaniekategorii = paneldodawaniekategorii;
	}

	public String getStrKategoriaModal() {
		return strKategoriaModal;
	}

	public void setStrKategoriaModal(String strKategoriaModal) {
		this.strKategoriaModal = strKategoriaModal;
	}

	public boolean isPaneldodawaniesklepu() {
		return paneldodawaniesklepu;
	}

	public void setPaneldodawaniesklepu(boolean paneldodawaniesklepu) {
		this.paneldodawaniesklepu = paneldodawaniesklepu;
	}
/*
	public Date getDateTest() {
		return dateTest;
	}

	public void setDateTest(Date dateTest) {
		this.dateTest = dateTest;
	}*/
/*
	public String getStrNazwaProduktu() {
		return strNazwaProduktu;
	}

	public void setStrNazwaProduktu(String strNazwaProduktu) {
		this.strNazwaProduktu = strNazwaProduktu;
	}

	public String getStrCena() {
		return strCena;
	}

	public void setStrCena(String strCena) {
		this.strCena = strCena;
	}
*/
	
	public SelectItem[] getListakategorii() {
		return listakategorii;
	}

	public void setListakategorii(SelectItem[] listakategorii) {
		this.listakategorii = pobierzkategorie();
		this.listakategorii = listakategorii;
	}

	public SelectItem[] getListasklepow() {
		return listasklepow;
	}

	public void setListasklepow(SelectItem[] listasklepow) {
		this.listasklepow=pobierzsklepy();
		this.listasklepow = listasklepow;
	}

	public String getStrKategoria() {
		return strKategoria;
	}

	public void setStrKategoria(String strKategoria) {
		this.strKategoria = strKategoria;
	}

	public String getStrSklep() {
		return strSklep;
	}

	public void setStrSklep(String strSklep) {
		this.strSklep = strSklep;
	}

	public boolean isWidokpanel() {
		return widokpanel;
	}

	public void setWidokpanel(boolean widokpanel) {
		this.widokpanel = widokpanel;
	}
	public void dodajsklep(int param){
		
	}
	SelectItem[] pobierzkategorie(){
		List<ZakupyKategoria> tymcz_=zakupy.exec.test.pobierz_kategorie();
		SelectItem[] tymcz=new SelectItem[tymcz_.size()];
		for (int i = 0; i < tymcz.length; i++) 
			tymcz[i]=new SelectItem(tymcz_.get(i).getNazwa());
		return tymcz;
	}
	SelectItem[] pobierzsklepy(){
		List<ZakupySklep> tymcz_=zakupy.exec.test.pobierz_sklepy();
		SelectItem[] tymcz=new SelectItem[tymcz_.size()];
		for (int i = 0; i < tymcz.length; i++) 
			tymcz[i]=new SelectItem(tymcz_.get(i).getNazwa());
		return tymcz;
	}
	public classbase(){
		listasklepow=pobierzsklepy();
		listakategorii=pobierzkategorie();
	}
	public void dodaj(){
		fc = FacesContext.getCurrentInstance();
		switch(Integer.parseInt(getCountryParam(fc,"param"))){
		case 1://otworz modal <dodaj sklep>
			mpnazwa.setNazwaprzycisku("Dodaj");
			mpnazwa.setEtykieta("Nazwa sklepu:");
			mpnazwa.wyswietlaj("Dodawanie...", "kkkk");
			break;
		case 2://otworz modal <dodaj kategorie>
			mpnazwa.setNazwaprzycisku("Dodaj");
			mpnazwa.setEtykieta("Nazwa kategorii:");
			mpnazwa.wyswietlaj("Dodawanie...", "kkkk");
			break;
		}
		System.out.println("action="+getCountryParam(fc,"param"));
		//paneldodawaniekategorii=true;
		//setPaneldodawaniekategorii(true);
	}
	/*public void dodajkategorie(){
		fc = FacesContext.getCurrentInstance();
		System.out.println("action="+getCountryParam(fc,"cc"));
		paneldodawaniekategorii=true;
		setPaneldodawaniekategorii(true);
	}*/
	String getCountryParam(FacesContext fc,String nazwaparametru){
		Map<String,String> params = fc.getExternalContext().getRequestParameterMap();
		return params.get(nazwaparametru);
	}

	public void dodajsklep(){
		paneldodawanie=true;
		modaltytul="Dodawanie...";
		fc = FacesContext.getCurrentInstance();
		System.out.println("action="+getCountryParam(fc,"cc"));
		komunikat="dodawanie sklepu";
		paneldodawaniesklepu=true;
	}
	private void dodajobiekt(int param){
		switch(param){
		case 1:
			break;
		}
	}
	public void dodajsklepprzycisk(){
		if (zakupy.exec.test.dodajSklep(strSklepModal)==1){
			operacjadodawanie=true;
			komunikat="Dodano sklep";
			strSklepModal="";
			listasklepow=pobierzsklepy();
		}
		else {
			komunikat="Inny błąd";
			strSklepModal="";
		}
			
	}
	public void dodajkategorieprzycisk(){
		if(zakupy.exec.test.dodajKategorie(strKategoriaModal)==1){
			operacjadodawanie=true;
			komunikat="Dodano kategorie";
			strKategoriaModal="";
			listakategorii=pobierzkategorie();
		}
		else {
			komunikat="Inny błąd";
			strKategoriaModal="";
		}
	}
	public void sprawdzdane(){
		
		if (strSklep=="" ||
				tempzk.getNazwa()=="" 
				//||		tempzt.getNazwa()=="" 
			){
			System.out.println("brak danych");
			operacjadodawanie=true;
			komunikat="Brak danych";}
		else
		{
			operacjadodawanie=true;
			ZakupyTowar d=new ZakupyTowar();
			/*if (strCena.matches("([1-9]*[0-9]*){1,3}.[0-9]{2}")
					&& strCena.indexOf(".")!=-1){
				d.setCena(Double.parseDouble(strCena));
				d.setNazwa(strNazwaProduktu);
				d.setDatadodania(dateTest);
				komunikat="Błędna cena";
				if (zakupy.exec.test.dodajTowar(d,strKategoria,
						strSklep,"ssssss")!="1")
					komunikat="Inny błąd";
				else
				{
					komunikat="Dodano towar";
					strCena=strNazwaProduktu="";
				}
			}
			else
					komunikat="Błędna cena";*/
		}
	}
}
